import { http } from '@/utils/http'

/**
 * empty object，收货地址：请求体参数
 */
export interface PostAddressData {
  /**
   * 详细地址
   */
  address: string;
  /**
   * 所在城市编码
   */
  cityCode: string;
  /**
   * 联系方式
   */
  contact: string;
  /**
   * 所在区/县编码
   */
  countyCode: string;
  /**
   * 是否为默认，1为是，0为否
   */
  isDefault: number;
  /**
   * 所在省份编码
   */
  provinceCode: string;
  /**
   * 收货人姓名
   */
  receiver: string;
}

export const PostAddress = (data: PostAddressData) => {
  return http({
    method: 'POST',
    url: '/member/address',
    data
  })
}

/**
 * empty object
 */
export interface EmptyObject {
  /**
   * 操作结果
   */
  msg: string;
  /**
   * 数据集合
   */
  result: Result[];
}

/**
* 数据信息
*/

export interface MemberAddressItem {
  /**
   * 详细地址
   */
  address: string
  /**
   * 地址标签，号分隔
   */
  addressTags: string
  /**
   * 所在城市编码
   */
  cityCode: string
  /**
   * 联系方式
   */
  contact: string
  /**
   * 所在区/县编码
   */
  countyCode: string
  /**
   * 完整行政区
   */
  fullLocation: string
  /**
   * 收货地址id
   */
  id: string
  /**
   * 是否为默认，1为是，0为否
   */
  isDefault: number
  /**
   * 邮政编码
   */
  postalCode: string
  /**
   * 所在省份编码
   */
  provinceCode: string
  /**
   * 收货人姓名
   */
  receiver: string
}
export interface Result {
  /**
   * 详细地址
   */
  address: string;
  /**
   * 所在城市编码
   */
  cityCode: string;
  /**
   * 联系方式
   */
  contact: string;
  /**
   * 所在区/县编码
   */
  countyCode: string;
  /**
   * 省市区(县)
   */
  fullLocation: string;
  /**
   * 收货地址id
   */
  id: string;
  /**
   * 是否为默认，1为是，0为否
   */
  isDefault: number;
  /**
   * 所在省份编码
   */
  provinceCode: string;
  /**
   * 收货人姓名
   */
  receiver: string;
}

/**
 * 
 * @returns 获取表单列表数据
 */
export const GetMemberAddressList = () => {
  return http<Result[]>({
    url: '/member/address',
    method: 'GET'
  })
}

/**
 * 修改收货地址
 * @param id  收货地址 id
 * @param data  收获地址请求体参数
 */
export const PutMemberAddress = (id: string, data: PostAddressData) => {
  return http({
    method: 'PUT',
    url: `/member/address/${id}`,
    data
  })
}

/**
 * 查询详细收货地址
 * @param id 收货地址 id
 * @param data 详细收货地址
 * @returns 
 */
export const GetMemberAddress = (id: string) => {
  return http<Result>({
    method: 'GET',
    url: `/member/address/${id}`,
  })
}
/**
 * 删除收货地址
 * @param id 收货地址 id
 */
export const DelMemberAddress = (id: string) => {
  return http<Result>({
    method: 'DELETE',
    url: `/member/address/${id}`,
  })
}